package cn.han.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

//本类用于List接口练习
public class TestList {
    public static void main(String[] args) {
        //1.创建List接口的多态对象
        List<String> list = new ArrayList<>();

        //2.练习继承自Collection父接口中的方法
        list.add("大力娃");
        list.add("千顺娃");
        list.add("铁头娃");
        list.add("喷火娃");
        list.add("喷水娃");
        list.add("隐身娃");
        list.add("小紫娃");
        System.out.println(list);
//        list.clear();
        System.out.println(list.contains("喷火娃"));
        System.out.println(list.equals("喷水娃"));
        System.out.println(list.isEmpty());
        System.out.println(list.remove("小蝴蝶"));
        System.out.println(list.size());
        System.out.println(Arrays.toString(list.toArray()));

        //3.测试list接口自己的方法
        list.add("小蝴蝶");//在后面拼接
        list.add(1,"蛇精");//在指定位置添加
        list.add(3,"小蝴蝶");//在指定位置添加,元素可以重复
        System.out.println(list.indexOf("小蝴蝶"));//获取元素在集合中第一次出现的索引值
        System.out.println(list.lastIndexOf("小蝴蝶"));//获取元素在集合中最后一次出现的索引值
        list.remove(2);//返回删除的元素
        System.out.println(list.get(6));
        System.out.println(list);
        System.out.println(list.set(5, "蝎子精"));//返回被替换掉的元素，将指定索引的元素替换成指定元素
        System.out.println(list);

        //4.集合间的操作
        List<String> list1 = new ArrayList<>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("4");
        System.out.println(list1);
        System.out.println(list.addAll(list1));//将集合1中的所有元素追加到list集合的末尾
        System.out.println(list.addAll(1, list1));//在list集合的指定索引处添加1的所有元素
        


    }
}
